//
//  HomeTableViewCell.swift
//  weibo1
//
//  Created by 代亚洲 on 16/4/21.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit
import SnapKit


/// 头像的大小
let HMStatusCellHeadImgWH: CGFloat = 35

/// 昵称的字体大小
let HMStatusCellNameFontSize: CGFloat = 14

/// cell里面公共的间距
let HMStatusCellMargin: CGFloat = 10

/// 内容label
let HMStatusCellContentFontSize: CGFloat = 14

/// 时间与来源
let HMStatusCellTimeFontSize: CGFloat = 10

/// 底部视图的高度
let HMStatusCellBottomViewH: CGFloat = 35

class HomeTableViewCell: UITableViewCell {
//
    // toolBar 的顶部约束
    var toolBarTopCons: Constraint?
    
    
    // var status: HMStatus?
    var statusViewModel: Homecellviewmdoel? {
        didSet{
            originalView.statuViewModel = statusViewModel
            
            
            // 要让 toolBar 的 top 约束失效
            // 1. 取到 toolBar 的 top 约束, 2. 再让其失效
            toolBarTopCons?.uninstall()
            // 判断是否有转发微博，如果有，就设置转发微博的数据
            if statusViewModel?.status?.retweeted_status != nil {
                //                - 设置数据
                retweet.statusViewModel = statusViewModel
                //                - 显示转发微博视图
                retweet.hidden = false
                //                - 更改约束：toolBar 的 top 为 转发微博的 bottom
                ustablebar.snp_updateConstraints(closure: { (make) -> Void in
                    toolBarTopCons = make.top.equalTo(retweet.snp_bottom).constraint
                })
            }else{
                // 没有转发微博
                //                - 隐藏转发微博视图
                retweet.hidden = true
                //                - 更改约束：toolBar 的 top 为 原创微博的 bottom
                ustablebar.snp_updateConstraints(closure: { (make) -> Void in
                    toolBarTopCons = make.top.equalTo(originalView.snp_bottom).constraint
                })
            }
        }
    }
    
//    var statusViewModel: Homecellviewmdoel? {
//        didSet{
//            
//            originalView.statuViewModel = statusViewModel
//        }
//    }
   
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        setupUI()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    func setupUI (){
//       cell 选中样式 
        selectionStyle = UITableViewCellSelectionStyle.None
//        背景颜色
        contentView.backgroundColor = UIColor(white: 180/255, alpha: 1)
//        随机背景颜色
//         backgroundColor = UIColor(red: CGFloat(random()%256)/255, green: CGFloat(random()%256)/255, blue: CGFloat(random()%256)/255, alpha: 1)
//        添加控件
        contentView.addSubview(originalView)
        contentView.addSubview(ustablebar)
        contentView.addSubview(retweet)
        //         // 添加约束
        originalView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(contentView).offset(HMStatusCellMargin)
            make.leading.trailing.equalTo(contentView)
            // 因为高度不确实，为了测试，暂时高度写死
            // make.height.equalTo(150)
        }
        
        ustablebar.snp_makeConstraints { (make) -> Void in
            toolBarTopCons = make.top.equalTo(retweet.snp_bottom).constraint
            make.leading.trailing.equalTo(originalView)
            make.height.equalTo(HMStatusCellBottomViewH)
            // toolBar的底部等于 contenView的底部 --> contentView 的底部等于 toolBar 底部
            // make.bottom.equalTo(contentView.snp_bottom)
        }
        
        retweet.snp_makeConstraints { (make) -> Void in
            make.leading.trailing.equalTo(originalView)
            make.top.equalTo(originalView.snp_bottom)
            // 高度要根据内容来决定
            // make.height.equalTo(60)
        }
        
        contentView.snp_makeConstraints { (make) -> Void in
            make.bottom.equalTo(ustablebar.snp_bottom)
            make.leading.top.trailing.equalTo(self)
        }
        
        
    }
    
    
    
    // MARK: - 懒加载控件
///    个人详细视图
    private lazy var originalView :OriginalStatusView = OriginalStatusView()
///    底部转发 评论按钮
    private lazy var ustablebar : StatusTableBar = StatusTableBar()
///     转发微博
    private lazy var retweet :RetweetStatusView = RetweetStatusView()
    
}
